package br.com.monise.dao;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Query;

import br.com.monise.model.Caracteristicas;
import br.com.monise.model.CaracteristicasParceiro;
import br.com.monise.model.Parceiro;
import br.com.monise.util.GenericDao;

public class CaracteristicasParceiroDao extends GenericDao<CaracteristicasParceiro>{
	
	public List<CaracteristicasParceiro> getCaracteristicas(Parceiro parceiro){
		EntityManager manager = getEntityManager();
		
		manager.getTransaction().begin();
        Query query = manager.createQuery("SELECT a from CaracteristicasParceiro a where a.parceiro.pkParceiro=:parceiro");
		query.setParameter("parceiro",parceiro.getPkParceiro());

		@SuppressWarnings("unchecked")
		List<CaracteristicasParceiro> caracteristicas = query.getResultList();

		manager.getTransaction().commit();
		//manager.close();

		return caracteristicas;
	}
	

	public CaracteristicasParceiro getCaracteristicasParceiro(Caracteristicas caracteristica){
		EntityManager manager = getEntityManager();
		
		manager.getTransaction().begin();
        Query query = manager.createQuery("SELECT a from CaracteristicasParceiro a where a.caracteristicas.pkCaracteristicas=:caracteristica");
		query.setParameter("caracteristica",caracteristica.getPkCaracteristicas());
		
		CaracteristicasParceiro caracteristicasParceiro = (CaracteristicasParceiro) query.getSingleResult();

		manager.getTransaction().commit();
		//manager.close();

		return caracteristicasParceiro;
	}
	
	public CaracteristicasParceiro getCaracteristicasParceiro(Parceiro parceiro){
		EntityManager manager = getEntityManager();
		
		manager.getTransaction().begin();
        Query query = manager.createQuery("SELECT a from CaracteristicasParceiro a where a.parceiro.pkParceiro=:parceiro");
		query.setParameter("parceiro",parceiro.getPkParceiro());

		CaracteristicasParceiro caracteristicas = (CaracteristicasParceiro) query.getSingleResult();

		manager.getTransaction().commit();
		//manager.close();

		return caracteristicas;
	}

	
	public CaracteristicasParceiro getCaracteristicasParceiro(Caracteristicas caracteristica, Parceiro parceiro){
		EntityManager manager =  getEntityManager();
		
		manager.getTransaction().begin();
        Query query = manager.createQuery("SELECT a from CaracteristicasParceiro a where a.caracteristicas.pkCaracteristicas=:caracteristica and a.parceiro.pkParceiro=:parceiro");
		query.setParameter("caracteristica",caracteristica.getPkCaracteristicas());
		query.setParameter("parceiro",parceiro.getPkParceiro());
		
		CaracteristicasParceiro caracteristicasParceiro = (CaracteristicasParceiro) query.getSingleResult();

		manager.getTransaction().commit();
		//manager.close();

		return caracteristicasParceiro;
	}
}
